package com.ycsj.goldmedalnewconcept.qrscan;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.widget.FrameLayout;

import com.ycsj.goldmedalnewconcept.R;

/**
 * 使用WebView播放视频时需要注意的地方：
 * 1、加网络访问权限（及其他所需要的权限）； 
 * 2、WebViewClient中方法shouldOverrideUrlLoading可用来实现点击webView页面的链接；
 * 3、WebView中播放视频需要添加webView.setWebChromeClient(new WebChromeClient())；
 * 4、视频竖屏时，点击全屏，想要切换到横屏全屏的状态，那么必须在Manifest.xml配置文件该Activity的
 * 	配置文件中添加android:configChanges="orientation|screenSize"语句。
 * 5、如果视频不能播放，或者播放比较卡，可以采用硬件加速，即在Application，或所在的Activity的配置文件中添加
 * 	android:hardwareAccelerated="true"即可。
 * 
 */
public class MainActivity2 extends Activity {
	private WebView webView;
	private FrameLayout video_fullView;// 全屏时视频加载view
	private View xCustomView;
	private ProgressDialog waitdialog = null;
	private CustomViewCallback xCustomViewCallback;
//	private myWebChromeClient xwebchromeclient;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		String path = getIntent().getExtras().getString("path");
//		Toast.makeText(this, path, 0).show();
//		Log.e("test", "main2=="+path);
		requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉应用标题
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setContentView(R.layout.activity_main2);
		
//		waitdialog = new ProgressDialog(this);
//		waitdialog.setTitle("提示");
//		waitdialog.setMessage("视频页面加载中...");
//		waitdialog.setIndeterminate(true);
//		waitdialog.setCancelable(true);
//		waitdialog.show();

		webView = (WebView) findViewById(R.id.webView);
		video_fullView = (FrameLayout) findViewById(R.id.video_fullView);

		WebSettings settings = webView.getSettings();
//		ws.setBuiltInZoomControls(true);// 隐藏缩放按钮
//		// ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);// 排版适应屏幕
//
//		ws.setUseWideViewPort(true);// 可任意比例缩放
//		ws.setLoadWithOverviewMode(true);// setUseWideViewPort方法设置webview推荐使用的窗口。setLoadWithOverviewMode方法是设置webview加载的页面的模式。
//
//		ws.setSavePassword(true);
//		ws.setSaveFormData(true);// 保存表单数据
//		ws.setJavaScriptEnabled(true);
//		ws.setGeolocationEnabled(true);// 启用地理定位
//		ws.setGeolocationDatabasePath("/data/data/org.itri.html5webview/databases/");// 设置定位的数据库路径
//		ws.setDomStorageEnabled(true);
//		ws.setSupportMultipleWindows(true);// 新加
		
		
		settings.setJavaScriptEnabled(true);
		settings.setJavaScriptCanOpenWindowsAutomatically(true);
		settings.setPluginState(PluginState.ON);
		// settings.setPluginsEnabled(true);
		settings.setAllowFileAccess(true);
		settings.setLoadWithOverviewMode(true);
		
		webView.setWebViewClient(null);
		webView.setWebChromeClient(null);
//		xwebchromeclient = new myWebChromeClient();
//		webView.setWebChromeClient(xwebchromeclient);
//		webView.setWebViewClient(new myWebViewClient());
		webView.loadUrl(path);
	}

//	public class myWebViewClient extends WebViewClient {
//		@Override
//		public boolean shouldOverrideUrlLoading(WebView view, String url) {
//			view.loadUrl(url); 
//			return false;
//		}
//
//		@Override
//		public void onPageFinished(WebView view, String url) {
//			super.onPageFinished(view, url);
//			waitdialog.dismiss();
//		}
//	}
//
//	public class myWebChromeClient extends WebChromeClient {
//		private View xprogressvideo;
//
//		// 播放网络视频时全屏会被调用的方法
//		@Override
//		public void onShowCustomView(View view, CustomViewCallback callback) {
//			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//			webView.setVisibility(View.INVISIBLE);
//			// 如果一个视图已经存在，那么立刻终止并新建一个
//			if (xCustomView != null) {
//				callback.onCustomViewHidden();
//				return;
//			}
//			video_fullView.addView(view);
//			xCustomView = view;
//			xCustomViewCallback = callback;
//			video_fullView.setVisibility(View.VISIBLE);
//		}
//
//		// 视频播放退出全屏会被调用的
//		@Override
//		public void onHideCustomView() {
//			if (xCustomView == null)// 不是全屏播放状态
//				return;
//
//			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//			xCustomView.setVisibility(View.GONE);
//			video_fullView.removeView(xCustomView);
//			xCustomView = null;
//			video_fullView.setVisibility(View.GONE);
//			xCustomViewCallback.onCustomViewHidden();
//			webView.setVisibility(View.VISIBLE);
//		}
//
//		// 视频加载时进程loading
//		@Override
//		public View getVideoLoadingProgressView() {
//			if (xprogressvideo == null) {
//				LayoutInflater inflater = LayoutInflater
//						.from(MainActivity2.this);
//				xprogressvideo = inflater.inflate(
//						R.layout.video_loading_progress, null);
//			}
//			return xprogressvideo;
//		}
//	}

	/**
	 * 判断是否是全屏
	 * 
	 * @return
	 */
	public boolean inCustomView() {
		return (xCustomView != null);
	}

	/**
	 * 全屏时按返加键执行退出全屏方法
	 */
	public void hideCustomView() {
//		xwebchromeclient.onHideCustomView();
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
	}

	@Override
	protected void onResume() {
		super.onResume();
		webView.onResume();
		webView.resumeTimers();

		/**
		 * 设置为横屏
		 */
		if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		}
	}

	@Override
	protected void onPause() {
		super.onPause();
		webView.onPause();
		webView.pauseTimers();
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		super.onDestroy();
//		video_fullView.removeAllViews();
		webView.loadUrl("about:blank");
//		webView.stopLoading();
//		webView.setWebChromeClient(null);
//		webView.setWebViewClient(null);
//		webView.destroy();
//		webView = null;
//		Intent intent = new Intent(MainActivity2.this,
//				MainActivity.class);
//		startActivity(intent);
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			if (inCustomView()) {
				// webViewDetails.loadUrl("about:blank");
				hideCustomView();
				return true;
			} else {                                                                                             
				webView.loadUrl("about:blank");                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
				MainActivity2.this.finish();
			}
		}
		return false;
	}
}
